var unread=null;
var unhandled=null;
var handled=null;

var RMD_TYPE_UNREAD = 1;
var RMD_TYPE_UNHANDLED = 2;
var RMD_TYPE_HANDLED = 3;

var pageSize=100;

var ifUnreadStart2Load = false;
var ifUnHandledStart2Load = false;
var ifHandledStart2Load = false;
var curPage = 0;



var  showInfo =function(rmdType,data){
	if(rmdType==RMD_TYPE_UNREAD){
		unread = data.remindList;
		setData(rmdType,unread);
	}
	else if(rmdType==RMD_TYPE_UNHANDLED){
		unhandled = data.remindList;
		setData(rmdType,unhandled);
	}
	else if(rmdType==RMD_TYPE_HANDLED){
		handled = data.remindList;
		setData(rmdType,handled);
	}else{
		alert("type error.");
		return;
	}
	
	//showContent(rmdType);
	
};

var setData = function(rmdType,data){
	var $tpl;
	if(rmdType==RMD_TYPE_UNREAD){
		$tpl = $('#tpl_unread');
	}else if(rmdType==RMD_TYPE_UNHANDLED){
		$tpl = $('#tpl_unhandled');
	}else if(rmdType==RMD_TYPE_HANDLED){
		$tpl = $('#tpl_handled');
	}else{
		console.log("fatal error.msgtype:"+rmdType);
		return;
	}
	
    var source = $tpl.text();
    var template = Handlebars.compile(source);
    
    var myData = {
    	list: data
    };
    
    console.log("json:"+data.length);
    
    if(data instanceof Array){
    	//isLastPage = false;
        if(data.length>pageSize){
        	//一直都有，则一直不显示没有了
        	hideErrorMsg(rmdType);
        }else{
        	//数据不够一页了，显示没有了
        	showErrorMsg(rmdType,"没有更多提醒信息了...");
        }	
    }else if(data instanceof Object){

    	//只有一个数据，或者没有数据，都是返回Object
    	if(data.empty !=undefined){
    		console.log("last page");
        	//isLastPage = true;
      	    myData = {
        		    };
        	console.info(myData);
        	
        	//翻页的最后一页.如果是该工号一个集团信息都看不到，也显示这个。
        	if(curPage==0){
        		 //第一页，并且有key，则是查询不到
        		 showErrorMsg(rmdType,"当前没有提醒");
        	}else{
        		    //第N页，不管是搜索还是不是搜素，没有了就是显示没有更多了
        		 showErrorMsg(rmdType,"没有更多提醒信息了...");
        	}
        	   		
    	}else{
    		//有一个数据的情况下
    		showErrorMsg(rmdType,"没有更多提醒信息了...");
    	}
    	
    }


    var html = template(myData);
    $tpl.before(html);
    
}


var buildParams =function(rmdType){
	var url = "startDate=&endDate=&rmdContent=&pageStart=0&pageLimit="+pageSize;
	
	//readFlag的传值，来自原esop的js源码解读
	if(rmdType==RMD_TYPE_UNREAD){
		url+="&readFlag=0"+"&rmdState=0";
	}else if(rmdType==RMD_TYPE_UNHANDLED){
		url+="&readFlag="+"&rmdState=0";
	}else if(rmdType==RMD_TYPE_HANDLED){
		url+="&readFlag=1"+"&rmdState=1";
	}
    var params ={"token":getParamValue("token"),"staffNo":getEmpCode(),"passUrl":url};
    //var params ={"token":getParamValue("token"),"staffNo":"ai_hanfeng","passUrl":url};
    return params;
};

var load = function(rmdType){
	    hideErrorMsg(rmdType);
	    showLoadingBar($('#loadingbar'),true);
	  	console.log("userid:"+getParamValue("userId"));
	  	params = buildParams(rmdType);
	  	
	 	$.ajax({
		    type: "post",
		    contentType: "application/json",
		    data: JSON.stringify(params),
		    url: Constants.rpcEsopHost+"queryMyReminds",
		    dataType: "json",
		    async: true,
		    headers: {
      'token': getParamValue('token'),
      'saleType': getParamValue('saleType')
    },
    success: function(data) {
      if (data.ResultCode === 1009) {
        alert('登陆超时，请重新登录！');
        jumpToSignin();
        return;
      }
		    	showLoadingBar($('#loadingbar'),false);
		    	console.log("data = "+data);
		        console.info(data);
		        if(data.rtnCode!=1000){
		        	//hideContent(rmdType);
		        	showErrorMsg(rmdType,data.rtnMsg);
		        	console.log("获取RPC提醒信息接口返回失败！code:"+data.rtnCode);
		        	return;
		        }
		        if(data.return.resultCode!="00"){
		        	//alert(data.return.resultDesc);
		        	if(data.return.resultDesc instanceof Object){
		        		showErrorMsg(rmdType,"接口返回错误，错误码："+data.return.resultCode);
		        	}else{
		        		showErrorMsg(rmdType,data.return.resultDesc);
		        	}
		        	
		        	console.log("获取提醒信息接口返回失败！code:"+data.return.resultCode);
		        	return;
		        }
		        showInfo(rmdType,data.return);
		    },
		    error : function(textStatus) {
		    	//hideContent(rmdType);
		    	showLoadingBar($('#loadingbar'),false);
		    	showErrorMsg(rmdType,"获取提醒信息失败！服务器没有返回。");
		        console.info("request error:");
		    }
		  });
};

/*var showUnread = function(){
	$unread = $("#ul_unread");
	if($unread.hasClass("am-hide")){
		$unread.removeClass("am-hide");
	}
	
	$unhandled = $("#ul_unhandled");
	if(!$unhandled.hasClass("am-hide")){
		$unhandled.addClass("am-hide");
	}

	$handled = $("#ul_handled");
	if(!$handled.hasClass("am-hide")){
		$handled.addClass("am-hide");
	}
};

var showUnhandled = function(){
	$unhandled = $("#ul_unhandled");
	if($unhandled.hasClass("am-hide")){
		$unhandled.removeClass("am-hide");
	}
	
	$unread = $("#ul_unread");
	if(!$unread.hasClass("am-hide")){
		$unread.addClass("am-hide");
	}

	$handled = $("#ul_handled");
	if(!$handled.hasClass("am-hide")){
		$handled.addClass("am-hide");
	}

};

var showHandled = function(){
	$handled = $("#ul_handled");
	if($handled.hasClass("am-hide")){
		$handled.removeClass("am-hide");
	}
	
	$unread = $("#ul_unread");
	if(!$unread.hasClass("am-hide")){
		$unread.addClass("am-hide");
	}
	
	$unhandled = $("#ul_unhandled");
	if(!$unhandled.hasClass("am-hide")){
		$unhandled.addClass("am-hide");
	}
	


};

var hideUnread=function(){
	$unread = $("#ul_unread");
	if(!$unread.hasClass("am-hide")){
		$unread.addClass("am-hide");
	}
	
	$unhandled = $("#ul_unread");
	if(!$unhandled.hasClass("am-hide")){
		$unhandled.addClass("am-hide");
	}
	
	
	$handled = $("#ul_handled");
	if(!$handled.hasClass("am-hide")){
		$handled.addClass("am-hide");
	}
};*/


//信息和错误提示要分开，是因为有内容时，也是要提示底部信息的。每个TAB都有一个底部信息，是因为每个TAB都是单独请求数据的，每个都可能同时显示不同的内容。
var showErrorMsg = function(rmdType,msg){
	$errorMsg = $("#error_msg_"+type2name(rmdType));
	if(msg==null)
		msg="接口返回失败，错误信息为空";
	$errorMsg.html(msg);
	if($errorMsg.hasClass("am-hide")){
		$errorMsg.removeClass("am-hide");
	}
};

var type2name = function(rmdType){
	if(rmdType==RMD_TYPE_UNREAD){
		return "unread";
	}else if(rmdType==RMD_TYPE_UNHANDLED){
		return "unhandled";
	}else if (rmdType==RMD_TYPE_HANDLED){
		return "handled";
	}else{
		return "";
	}
	
};

var hideErrorMsg = function(rmdType){
	$errorMsg = $("#error_msg_"+type2name(rmdType));
	if(!$errorMsg.hasClass("am-hide")){
		$errorMsg.addClass("am-hide");
	}
};


//每次请求结果回来时，显示。
var showContent = function(rmdType){
	$ul = $("#ul_"+type2name(rmdType));
	if($ul.hasClass("am-hide")){
		$ul.removeClass("am-hide");
	}	
}

//每次请求失败时，内容隐藏，仅显示错误信息。
var hideContent = function(rmdType){
	$ul = $("#ul_"+type2name(rmdType));
	if(!$ul.hasClass("am-hide")){
		$ul.addClass("am-hide");
	}	
}

//滑动tab页或者点击的时候会调用的方法
var loadDatasOnChanged = function(tabTitle){
	//基本信息已经加载，切换的时候，统一都不加载
	if(tabTitle =="未读消息"){
		//获取失败后，点击tab可重新获取
		if(unread==null){
			console.log("want to load unread");
			if(!ifUnreadStart2Load){
				ifUnreadStart2Load=true;
				console.log("to load unread");
				load(RMD_TYPE_UNREAD);
			}
		}
	}
	//其余两个tab，如果发现没有数据，则加载。如有数据，则不加载。
	if(tabTitle=="未处理"){
		if(unhandled==null){
			console.log("want to load unhandled");
			if(!ifUnHandledStart2Load){
				ifUnHandledStart2Load=true;
				console.log("to load unhandled");
				load(RMD_TYPE_UNHANDLED);
			}
		}	
	}
	else if(tabTitle=="已处理"){
		if(handled==null){
			console.log("want to load handled");
			if(!ifHandledStart2Load){
				ifHandledStart2Load=true;
				console.log("to load handled");
				load(RMD_TYPE_HANDLED);
			}
		}	
	}

}
var getAddAndSearchObj = function(){
	var obj = {};
	obj.addBtnId = "add";
	obj.searchBtnId = "search";
	obj.searchPlaceholder = "查询";
	return obj;
}
$(function(){
	load(RMD_TYPE_UNREAD);

	showItem(getAddAndSearchObj(),"add-search-tpl");

    $("#add").on("click",function(){
        window.location.href = "reminder_add.html" + "?" + getParams();
      });
	
    $("#search").on("click",function(){
        window.location.href = "reminder_search.html" + "?" + getParams();
      });
    
	$('#mytabs').find('a').on('opened.tabs.amui', function(e) {
	    console.log('切换到[%s] 选项卡了', $(this).text());
	    loadDatasOnChanged( $(this).text());
    })

/*    $('#mytabs').find('a').on('click', function(e) {
	    console.log('点击打开[%s] 选项卡了', $(this).text());
	    loadDatasOnChanged( $(this).text());
		
    })*/
	
});